如何相对于项目文件设置资源文件路径?

4
假设我有一个名为A的目录,该目录中有一个名为x.csproj和sln的项目文件。我还有一个名为x.resources的资源文件。
如何设置资源文件而不使用绝对路径C:\A\x.resources,而是使用相对路径.\x.resources?我尝试使用x.resources,但它不起作用。
图片链接:https://istack.dev59.com/W1WWk.webp

1
“不工作”是什么意思?它给出了什么错误? - Joe White
3个回答

6

我遇到了同样的问题。我的同事甚至没有尝试在UI中修复它,而是在文本编辑器中黑客攻击了CSPROJ文件:

CSPROJ路径: C:\foo\bar\SolutionNm\ProjectNm\ProjectNm.csproj

资源路径: C:\foo\bar\Icons.res

原始内容:

  <PropertyGroup>
    <Win32Resource>C:\foo\bar\Icons.res</Win32Resource>
  </PropertyGroup>

修改时间:

  <PropertyGroup>
    <Win32Resource>..\..\Icons.res</Win32Resource>
  </PropertyGroup>

只要您不再尝试在用户界面中修改值,它就不会再抱怨了。
祝好, Aaron

1
我明白提问者在使用.NET,但是顺便说一下,对于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文件的目录而言的。


0
注意: Visual Studio有时会在.csproj中过早地放置<PropertyGroup><Win32Resource>,因此您需要手动编辑XML,并将<PropertyGroup>移动到<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />元素之后,以便引用相对于.csproj文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接