假设我有一个目录A,并且在该目录中有一个项目文件x.csproj和sln。 我也有资源文件x.resources。
如何设置资源文件而不使用绝对路径C:\A\x.resources
,而是设置相对路径.\x.resources
?我尝试使用x.resources
,但它不起作用。
答案 0 :(得分:6)
刚遇到同样的问题。我的同事甚至没有尝试在UI中修复它,只是在文本编辑器中破解了CSPROJ文件:
CSPROJ路径:C:\ foo \ bar \ SolutionNm \ ProjectNm \ ProjectNm.csproj
Res Path :C:\ foo \ bar \ Icons.res
原件:
<PropertyGroup>
<Win32Resource>C:\foo\bar\Icons.res</Win32Resource>
</PropertyGroup>
修改:
<PropertyGroup>
<Win32Resource>..\..\Icons.res</Win32Resource>
</PropertyGroup>
只要您不尝试再次修改UI中的值,就不会抱怨
干杯, 亚伦
答案 1 :(得分:1)
我意识到提问者正在使用.NET,但就像FYI一样,对于C ++项目,您必须编辑VCXPROJ文件,并且资源以稍微不同的格式存储在文件底部附近。
原件:
<ItemGroup>
<Image Include="C:\projects\dragdroptree\DragDropView\res\bmp00001.bmp" />
<Image Include="C:\projects\dragdroptree\DragDropView\res\toolbar1.bmp" />
</ItemGroup>
修改:
<ItemGroup>
<Image Include="res\toolbar.bmp" />
<Image Include="res\bmp00001.bmp" />
</ItemGroup>
为了澄清,你放在那里的路径是相对于VCXPROJ文件所在的目录。
答案 2 :(得分:0)
注意:Visual Studio有时会在.csproj中过早放置<PropertyGroup> <Win32Resource>
,因此您需要手动编辑XML并在{{<PropertyGroup>
之后移动<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
1}}元素,因此引用将相对于.csproj文件。