2015-07-02 19 views
1

在我的C#项目中,我在文件夹中有一些.docx,.xlsx,*。jpg文件,我想将所有这些文件设置为Content,而Setup and Deployment Project我想将所有这些文件为Content Output因为我已经完成以下步骤:创建链接到文件时VS2010警告

  1. 从属性窗口中卸载项目,然后选择编辑.csproj文件。
  2. 添加以下行<ItemGroup>使文件夹中的所有文件,Content,并将它们连接到一个文件夹

    <Content Include="Lib\MyApp\Support\**\*.*"> 
        <Link>Support\%(RecursiveDir)%(FileName).%(Extension)</Link> 
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    </Content> 
    <Content Include="Lib\MyApp\Files\**\*.*"> 
        <Link>Files\%(RecursiveDir)%(FileName).%(Extension)</Link> 
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    </Content> 
    
  3. 刷新项目

重装项目中,我得到了很多像

警告后

警告34文件'Lib \ MyApp \ Files \ abc.bmp'不能是添加到 该项目。无法添加链接到文件 D:\ MyApp \ Lib \ MyApp \ Files \ abc.bmp。该文件位于项目 目录树中。

我已经从项目中排除了Lib文件夹,为什么我得到这样的警告我做错了什么?忽略这些警告是安全的吗?

更新

加入<Visible>false</Visible>删除警告后修改的csproj文件,这

<Content Include="Lib\QOES\Support\**\*.*"> 
     <Link>Support\%(RecursiveDir)%(FileName)%(Extension)</Link>  
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     <Visible>false</Visible> 
</Content> 
<Content Include="Lib\QOES\Files\**\*.*"> 
     <Link>Files\%(RecursiveDir)%(FileName)%(Extension)</Link> 
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     <Visible>false</Visible> 
</Content> 

之后,但是这是正确的方式?

回答

0

根据:MSDN: The file 'file' could not be added to the project,其中一个原因是相对路径不明确。这意味着文件路径Lib/MyApp/Files/abc.bmp既可以作为项目文件夹中的文件路径,也可以作为导致不明确性的D:驱动器。这是我的猜测。手动添加文件到项目文件夹可能会导致问题。

+0

因此,这是安全的忽略或我需要做的事情? – Amogh

+0

鉴于我从来没有试图手动添加我的链接或文件,我不能给你一个明确的答案。我一定会在将来注意到它应该出现的事情。 – Adam

+0

后加' false'删除了所有警告,但我不确定这是正确还是错误。请参阅相关更新部分。 – Amogh