C#程序移植

C#程序移植

刚刚毕业,进入公司,只会一些基本的C#编程技术,在看程序的时候发现“移植”这个词,并不明白,今天看了一篇博文发现移植就是把自己工程外的程序放到自己的项目中。接下来转载他的做法
别人的C#程序不是随便能拷贝过来就用的。今天为了这个问题花了我好几个小时的时间,幸运的是,终于搞定了。

新建了一个项目,将网络上的一个demo程序拷贝了过来。将所有应该配置的配置好,发现Form上的控件都消失了。拷贝过来的Form的如果不修改,程序编译和执行都没错。修改界面后,resx文件出现变化,编译不通过。如果重新将Form中的控件再布置一次,那引入别人的程序也没多大的意思了。于是开始修改,目标是拷贝过来的Form能显示原先布置在其上的控件,并且可以编辑界面,程序可以编译和执行。

最开始查看cs,resx,Designer.cs文件,用文本文件直接查看,没发现问题,没头绪。只好扩大范围,查看resource文件,……,一个的看过去,都没问题。忽然想到,有一个很重要的文件我忽略了,那就是.csproj文件。打开这个文件,发现玄机。

一个Form,例如MainForm,在csproj中有3个配置,

******<Compile
Include="MainForm.cs">
   
 
<SubType>Form</SubType>
   
</Compile>
 
  <**Compile
Include**="MainForm.Desig**ner.cs">
 
   
<DependentUpon>MainForm.cs</DependentUpon>
 
 
</Compile>


 
  <EmbeddedResource
Include="MainForm.resx">
 
   
<SubType>Designer</SubType>
 
   
<DependentUpon>MainForm.cs</DependentUpon>
 
 
</EmbeddedResource>


我们要编辑的,其余的,是VS自动生成的。而且如果我们在一个项目中新建一个Form,那么系统会自动的帮我们产生另外的2个文件,而且会将这3个文件通过配置建立关联。如果我们仅仅将其他项目中的Form引入过来,那么只会在csproj中产生红色部分的配置,另外2块配置没了。而如果我们修改此Form,系统会自动生成另外2个文件,并覆盖原来的,OK,这下就必然会出错了。
所以引入Form,要将配置文件中的3个部分都拷贝过来。

我考虑到的一个简单的方法是:将Form.cs文件拷贝过去,双击,系统会试图编辑Form,并会自动生成resx和design文件,并且在csproj中生成3块配置。OK,我们需要的就是这个。这时候,再将外面的2个文件拷贝过来,覆盖系统生成的,就搞定了。这是最省事的方法。

转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值