我负责测试VS 2015以及它如何与我们目前的雇主申请一起使用.我们目前使用VS 2013来处理我们所拥有的一切,所以我知道那里没有问题.我遇到的问题是,似乎vshost.exe没有正确终止或其他东西.我没有缩小确切的问题,但到目前为止,这是我所相信的.
以下是我收到错误的方法:
重建后,我在EXE中遇到以下错误:
Error Could not copy "obj\Debug\APP.exe" to "..\..\bin\APP.exe". Exceeded retry count of 10. Failed.
Error Unable to copy file "obj\Debug\APP.exe" to "..\..\bin\CRM.exe". The process cannot access the file '..\..\bin\APP.exe' because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)
如果我打开任务管理器并手动结束vshost.exe进程,我可以再次成功重建,没有问题.但是,如果我采取相同的步骤,我将无法再进行构建.
我在2013年测试了这些步骤并且没有问题.
另请注意,禁用"启用Visual Studio托管过程"确实可以缓解此问题,但我不想禁用此选项.
其他人遇到过这个问题吗?我知道我们还在发布的早期.尝试任何建议/解决方案?我们的代码中是否有可能出现问题(我非常怀疑,因为我会在2013年得到错误,最有可能).
感谢您的帮助!
编辑:这是使用C#在.Net 4.0中编写的WPF应用程序.另外,我已经验证了如果我正常退出应用程序也会出现问题(IE我打开一个窗口,然后在LastWindowClosed上以关闭模式关闭它)
第二次编辑:这是一个新问题,在Visual Studio 2015中添加了新的实时诊断工具.
我正在尝试构建一个结构,其中我有一个基础IValidator <>接口,将基于一些元数据为我们的系统生成.我们希望给未来的开发人员灵活地1)重新生成IValidator <>如果需要的话的具体实现,而不会干扰任何手工编写的代码和2)添加装饰器来IValidator <>,以便能够扩展功能,而不会干扰自动生成的代码.
我希望有一些方法可以在运行时使用Simple Injector的RegisterDecorator方法来解析泛型装饰器,这样我们的开发团队就不需要每次添加装饰器时都更新组合根.
以下是一些示例类/接口
public interface IValidator<T> where T : class
{
void Validate(T entity);
}
public class ClientValidator : IValidator<Client>
{
public void Validate(Client entity)
{
//Auto-generated
}
}
public class UserValidator : IValidator<User>
{
public void Validate(User entity)
{
//Auto-generated
}
}
public class ClientValidatorDecorator : IValidator<Client>
{
private readonly IValidator<Client> clientValidator;
public ClientValidatorDecorator(IValidator<Client> clientValidator)
{
this.clientValidator = clientValidator;
}
public void Validate(Client entity)
{
//New rules
this.clientValidator.Validate(entity);
}
}
public class UserValidatorDecorator : IValidator<User> …Run Code Online (Sandbox Code Playgroud) 我正在创建一个从许多表返回数据的存储过程,因此它有几个块,最终导致一个临时表.唯一的问题是它没有生产任何东西.所有单独的块似乎都有效,但总的来说并非如此.
我觉得我可能会遗漏一些小东西,所以你的意见很值得赞赏.
@ref_num VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
DECLARE @clKey INT
DECLARE @clName VARCHAR(50)
SET @clKey = (SELECT ClearingBroker FROM DocumentRecieved WHERE ref_num = @ref_num)
SET @clName = (SELECT EB_Name FROM EB_Company WHERE EB_dtc_num = @clKey)
SELECT
a.ref_num
,b.DateSent
,b.Document as 'FormName'
,b.ClearingBroker as 'ClearingBrokerID'
,b.ExecutingBroker as 'ExecutingBrokerID'
,c.EB_Name
,a.AccountName
INTO
#Temp1
FROM
EB_Company c JOIN PBIN_records a ON c.EB_dtc_num = a.eb_key
JOIN DocumentRecieved b ON a.ref_num = b.ref_num
WHERE
a.ref_num = @ref_num
--================================================================================================
CREATE TABLE
#Temp2 …Run Code Online (Sandbox Code Playgroud)