Hej ..men det funkar förutom att GUI.cs inte syns i IDE:n? Har fått lite mer klarhet i detta nu!Renderar resurser publika manuellt?
Jag hittade följande artikel: http://blogs.msdn.com/lifenglu/archive/2006/03/16/553348.aspx
Här gör man manuell ändring i projekt filen för att innan compilering generera publika klasser för resex filerna.
Jag har lyckats så långt att filen genereras till en cs fil och läggs i roten av projektet, dock så inkluderas inte filen i själva projectet(finns inte med i när man öppnar projektet i VS2005)?
Så här ser delen ut som ska generar och lägga in filerna
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.-->
<Target Name="BeforeBuild" DependsOnTargets="CreateStrongTypeResource" />
<Target Name="CreateStrongTypeResource" DependsOnTargets="GenStrongTypeResource">
<CreateItem Include="GUI.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
</Target>
<Target Name="GenStrongTypeResource" Inputs="GUI.resx" Outputs="GUI.cs">
<GetFrameworkSdkPath>
<Output TaskParameter="Path" PropertyName="SdkPath" />
</GetFrameworkSdkPath>
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c# /publicClass GUI.resx" />
</Target>
<!--
<Target Name="AfterBuild">
</Target>
-->
Kan det ha något med att projektet är bundet till Teamfoundation sourcesafe? hur kan jag lösa detta?Sv: Renderar resurser publika manuellt?
Jag antar att Visual Studio kollar en gång för alla vilka filer som ska finnas med i solution explorer (och tar då inte med 'dynamiskt' skapade items (dvs. såna skapade via CreateItem).
I såna fall skulle jag inte bry mej så värst om det hela...Sv:Renderar resurser publika manuellt?
De genererade klasserna ska helt enkelt inte med i projektet(sourcesafen) då dessa ska genreras varje gån pojektet byggs.
Däremot byggs de in i själva class library dll:en vilket ger tillgång till innehållet utifrån.
C# skapar inte själv namespacen(så som vb.net gör) så därför måste man speceficera för resgen namespact som man hade tänkt sig:
ex:
<Target Name="BeforeBuild" DependsOnTargets="CreateStrongTypeResource" />
<Target Name="CreateStrongTypeResource" DependsOnTargets="GenStrongTypeResource">
<CreateItem Include="GUI.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
<CreateItem Include="Icons.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
<CreateItem Include="Links.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
<CreateItem Include="Medical.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
<CreateItem Include="Demo.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
</Target>
<Target Name="GenStrongTypeResource" Inputs="GUI.resx" Outputs="GUI.cs">
<GetFrameworkSdkPath>
<Output TaskParameter="Path" PropertyName="SdkPath" />
</GetFrameworkSdkPath>
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c#,Orbit.Resources /publicClass GUI.resx" />
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c#,Orbit.Resources /publicClass Icons.resx" />
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c#,Orbit.Resources /publicClass Links.resx" />
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c#,Orbit.Resources /publicClass Medical.resx" />
<Exec Command=""$(SdkPath)bin\resGen.exe" /str:c#,Orbit.Resources /publicClass Demo.resx" />
</Target>